C1WPFReport は、レポートを生成するために以下の2つの方法を提供します。
C1 Reportコンポーネントを使用
どちらの方法でも既存のレポートを正常に生成できますが、上記の2つの方法の主な相違点は以下の通りです。
インポートするとデータ連結された C1PrintDocument が生成され、データが取得されます。したがって、データが更新されるとドキュメントも更新されます。
一方、C1Report コンポーネントを使用する場合は、作成されたドキュメントで生成中に取得されたデータは既に組み込まれています。したがって、ドキュメントはデータと連結されていませんので、データを更新したときは、再びレンダリングする必要があります。
レポートを C1PrintDocument でインポートする場合は、フィールドおよびセクションのすべてはそれぞれRenderField クラスおよびRenderSection クラスとして示されています。レポートの定義でグループが含まれている場合は、各グループはRenderArea オブジェクトとして表されます。グループ内のヘッダとフッタはRenderSection クラス、ネストされたグループはRenderArea クラスが使用されます。
C1Report コンポーネントを使用すると、各セクションはRenderArea オブジェクトとしてレンダリングされます。フィールドのレンダリングは以下の通りです。
LineSlant プロパティが指定されている場合は、RenderLine クラス が生成されます。
画像またはバーコードが指定されている場合はRenderImage クラスが生成されます。
RTF プロパティは True に設定されている場合は、RenderRichText が生成されます。
その他の場合は、RenderText クラスが生成されます。
CustomWidth およびCustomHeight がどちらも0に設定されているレポートをプリンタがインストールされていないシステムにインポートすると、C1PrintDocument では、現在のロケールに基づいて用紙サイズが決定されます (たとえば、用紙サイズはアメリカやカナダではレター、日本やヨーロッパでは A4 に設定されます)。
同じレポートを C1Report コンポーネントで読み込んだ場合は、用紙サイズは C1.Win.C1Report.C1Report と同様に現在のロケールに基づいて用紙サイズが決定されます。
1つ以上のプリンタがインストールされているシステムでは、インポートされたレポートのデフォルトページサイズは通常の C1PrintDocument と同じロジックを使用して決定されます (プリンタを決定するには、MeasurementPrinterName プロパティが使用されます)。この動作は、デフォルトネットワークプリンタがインストールされているシステムで長い保留時間を回避するために提供されています。C1Report コンポーネントの場合は、システムのデフォルトプリンタのデフォルトページサイズが使用されます。
スクリプトの制限:
C1PrintDocument オブジェクト
- Font プロパティは読み取り専用です。
Field オブジェクト
-Section,Font, およびSubreport プロパティは読み取り専用です。
- LineSpacing、 SubreportHasData および LinkValue プロパティはサポートされません。LinkTarget プロパティに式が含まれる場合は、評価されずに文字列として使用されます。
Layout オブジェクト
- ColumnLayout プロパティはサポートされません。列は常に上から下、左から右に並べられます。
- LabelSpacingX,、LabelSpacingY、OverlayReplacements プロパティはサポートされません。
- ForcePageBreak を OnPrint ハンドラに使用することはできません。
レポートのパラメータを入力するためのダイアログは表示されません。その代わりに、パラメータの種類によってデフォルト値が使用されます (数値には0、文字列には空文字列、日付には現在の日付が使用されます)。
PageHeader および PageFooter では、データベースフィールドを使用できません。
C1Report では、段組みレポートのレポートヘッダがすべての列に出力されますが、C1PrintDocument では、最初の列だけに出力されます。
左から右方向の列はサポートされません。列は常に上から下方向へ設定されます。
C1Report で画像を格納しているField クラスのCanGrow プロパティが True、PictureScale プロパティが Clip に設定されている場合は、フィールドの幅と画像の幅が等しくなります。これをインポートすると、フィールドの幅は画像幅と比例的にスケールされます。